<?php
class Uzytkownik extends Gosc {
	
	protected $iId;
	
	
	public static function pobierzUzytkownikow( $aParams = array() )
	{
		$oDb = My_Db::factory('db_Uzytkownik');
		$aUzytkownicy = array();
		
		$aGdzie = array( 
					My_Db::pobierzAdapter()->quoteInto( 'usuniety = ?', 0 ),
					My_Db::pobierzAdapter()->quoteInto( 'role = ?', 'user' )
		);

		$oRow = $oDb->fetchAll($aGdzie);
		
		foreach( $oRow as $aUser )
		{
			$aUzytkownicy[] = new Uzytkownik( $aUser->id_uzytkownika );
		}
		
		return $aUzytkownicy;
	}

	public static function dodaj( $aDane )
	{
		$oDb = My_Db::factory('db_Uzytkownik');		

		
		$sHaslo = My_Model_Haslarz::generujHaslo( 8, true );
		$aDane['haslo'] = sha1($sHaslo);
		$aDane['kod'] = sha1( mktime() . rand()%99999 );
		
		if( $iId = $oDb->insert( $aDane ) )
		{
			$oMail = new Zend_Mail();
			$oMail->setSubject( 'Hasło do systemu!' );
			$oMail->setBodyText( 'Twoje haslo to: ' . $sHaslo );
			$oMail->addTo( $aDane['email'] );
			
			$oTransport = new Zend_Mail_Transport_Smtp( 'poczta.o2.pl', array( 'auth' => 'login', 'username' => 'io-mailer', 'password' => 'klasyczne-dupa.' ) );
			$oTransport->getConnection();
			$oMail->send( $oTransport );
			
			return $iId;	
		}
		
		return false;
	}	
	
	
	public static function usun( $iId )
	{
		$oDb = My_Db::factory('db_Uzytkownik');			
		$oDb->update( 
			array( 'usuniety' => 1 ),
			array( My_Db::pobierzAdapter()->quoteInto( 'id_uzytkownika = ?', $iId ) ) 
		);	
		
		return true; 
	}
	
	
	
	public function getId() {
		return $this->iId;
	}
	
	public function getEmail() {
		return $this->sEmail;
	}
	
	public function getRole() {
		return $this->sRola;
	}

	public function __construct($iId) {
	    $oDb = My_Db::factory('db_Uzytkownik');

		$sQuery = $oDb->select()->where('id_uzytkownika = ?', $iId);

		$oRow = $oDb->fetchRow($sQuery);
		
		if($oRow != null) {
			$this->iId = $oRow->id_uzytkownika;
	    	$this->sEmail = $oRow->email;
	    	$this->sRola = $oRow->role;
		}
	}
		
	public function logout() {
		$oSesja = new Zend_Session_Namespace( 'zalogowanyUzytkownik' );
		$oSesja->unlock();
		$oSesja->oUzytkownik = new Gosc();
		$oSesja->lock();
		
	    return true;
	}

	public function zmienHaslo($sHaslo) {
		$oDb = My_Db::factory('db_Uzytkownik');
		
		$aData = array('haslo' => sha1($sHaslo));
		$aWhere[] = "id_uzytkownika = ".$this->iId;
		
		return $oDb->update($aData, $aWhere)->where;
	}
}

?>